<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*创建一个对象*/
			
			var obj = {
				name:"孙悟空",
				age:18,
				gender:"男",
				sayName:function(){
					alert(this.name)
				}
			};
			
			// var obj2 = {
			// 	name:"猪八戒",
			// 	age:28,
			// 	gender:"男",
			// 	sayName:function(){
			// 		alert(this.name);
			// 	}
			// };
			
			// var obj3 = {
			// 	name:"沙和尚",
			// 	age:38,
			// 	gender:"男",
			// 	sayName:function(){
			// 		alert(this.name);
			// 	}
			// };
			
			//为了应对多个相似对象的创建
			//我们使用工厂方法创建对象
			//通过该方法可以大批量的创建对象
			function createPerson(name,age,gender){
				//创建一个新的对象
				var obj = new Object();
				//向对象中添加属性
				obj.name = name;
				obj.age = age;
				obj.gender = gender;
				obj.sayName = function(){
					alert(this.name)
				};
				//返回新对象
				return obj;
			}
			/*创建一个狗的对象*/
			function craeteDog(name,age){
				var obj = new Object();
				obj.name = name;
				obj.age = age;
				obj.sayHello = function(){
					alert("旺旺--");
				};
				return obj;
			}
			
			var obj2 = createPerson("八戒",28,"男");
			
			console.log(obj2);
			var obj3 = createPerson("dad",28,"男");
			
			console.log(obj3);
			var obj4 = createPerson("dw",28,"男");
			
			console.log(obj4);
			//obj2.sayName();
			var dog = craeteDog("旺财",3);
			console.log(dog);
			console.log(obj4);
			/*
			使用工厂方法创建的对象，使用构造函数都是Object
			所以创建的对象都是Object这个类型
			就导致我们无法区分出多种不同类型的对象
			*/
		</script>
	</body>
</html>
